package zk_task

import (
	"EasyReson/global"
	log "code.google.com/p/log4go"
	"fmt"
	"strings"
	"EasyReson/util"
	"EasyReson/task"
)
/**
	当收到zk通知时，回调用方法触发调用该方法，将更新内容映射到全局配置上
 */
func scanConfig(path string,value string,tasker *global.Task){
	fmt.Println(path,value)

	log.Info(" taskName [%s] zkNode Data changed path[%s] value[%s]", tasker.TaskName,path,value)
	if ""==value {
		errStr := fmt.Sprintf("zkNode path[%s] value is null ",value)
		log.Error(errStr)
	}

	//如果要更新的值是一个手动触发定时任务的开发，则手动触发一下定时任务
	if strings.Contains(path,open){
		go task.QueueManager.ExcuseCronTask(tasker.TaskName)
	}
	//如果要更新的值是Stop,则根据结果进行操作，如果是true，则暂停服务，如果是false，则取消服务暂停
	if strings.Contains(path,stop) {
		stop := util.ToBool(value,false)
		if stop {
			go task.QueueManager.StopTask(tasker.TaskName)
		}else{
			go task.QueueManager.StartTask(tasker.TaskName)
		}
	}
}
